home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / ms_dos / div / div.doc < prev    next >
Text File  |  1993-11-30  |  7KB  |  149 lines

  1. /* DIVIDE_START=div.doc */
  2.   ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
  3.   ファイル分割ツール DIV.EXE の使い方
  4.                                 div.doc
  5.   ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
  6.  
  7. 1.DIV.EXEとは
  8.    C言語の特徴の1つとして、分割コンパイルが可能ということがあります。
  9.   1つのプログラムを作るのに1つのソースファイルだけで全体が記述してあ
  10.   るというようなプログラムであると、「ちょっと修正」という場合にでも、
  11.   ソースファイルを全部をエディタに読み込んでエディットし、コンパイルし
  12.   なければなりません。時間がかかってしまうということになります。
  13.    そこで、ソースファイルを機能ごとに分割し、それぞれを別々に記述し、
  14.   別々にコンパイルして、最終的に1つのプログラムにするという手法がとら
  15.   れました。「分割コンパイルが可能」ということです。
  16.    ところが、この分割コンパイルでプログラムを記述していると、非常にた
  17.   くさんのファイルが作られることになります。そして、きちんと仕様を決定
  18.   しないで安易にプログラムを作っていると、機能の変更とか追加の場合に修
  19.   正が大変になってしまうことがあります。例えば、重複して「static」な変
  20.   数を定義していたり、ほとんど同じ様な機能の関数を定義していたりします。
  21.   また、新しい変数や関数を導入する場合、それまでの変数名や関数名を変更
  22.   した場合もあります。そのような場合、ファイルが1つであると、逆に便利
  23.   である場合もあります。
  24.    市販のエディタにVzというエディタがあります。安価であるのに非常に
  25.   優秀なエディタでありまして、大きなファイルでも、非常に高速に文字列を
  26.   検索したり置換したりできます。このエディタを使用していると、文字列の
  27.   置換のために別のプログラムを起動しなくても充分実用になります。
  28.    ということは、逆に、分割されたファイルを1つに纏めたり、再度分割で
  29.   きたりするプログラムがあれば良いことになります。そこで作ったのが本プ
  30.   ログラムです。
  31.  
  32.    さて、複数のファイルを1つにまとめる場合、いろんな手法でまとめるこ
  33.   とができると思います。1つは、纏めたファイルとは別に「どこに」「どの
  34.   ような」ファイルがあるかという、いわばインデックスのファイルを用意し
  35.   て、それでそれぞれのファイルを管理するというやり方です。あるいは、1
  36.   つに纏めたファイルの中に、ソースファイル中には現れそうにないコードや
  37.   文字列を挿入しておくという方法もあります。
  38.    本プログラムでは、その第2の方法としてソースファイルには現れそうに
  39.   ない文字列を1つに纏めたファイルの中に挿入し、その文字列を探索するこ
  40.   とを通して、ファイルの区切りとしています。また、1つに纏めたファイル
  41.   の拡張子を「.old」とした別のファイルを作り、そのファイルとの一致・不
  42.   一致を調べることによって修正が「あった」「なかった」を判断しています。
  43.  
  44. 2.DIVが識別する、区切りの文字列
  45.   (1) CTは、次の文字列を行の頭から記述してあると、そこから新しいファイ
  46.   ルが始まると判断します。
  47.         /* DIVIDE_START=          (a)
  48.         /* -DIVIDE_START=         (b)
  49.         # DIVIDE_START=           (c)
  50.         # -DIVIDE_START=          (d)
  51.         ; DIVIDE_START=           (e)
  52.         ; -DIVIDE_START=          (f)
  53.    これらの文字列の後ろにファイル名を記述しておきます。ファイル名の後
  54.   ろの文字列は無視されます。例えば次のように指定します。
  55.          /* DIVIDE_START=div.doc */
  56.    ファイル名の長さは32バイトまでとしています。存在しないディレクト
  57.   リをファイル名の中に記述してあると、エラーで処理が中断されますので、
  58.   注意して下さい。
  59.  
  60.   (2) また、次の文字列が行の頭から記述してあると、そこでそのファイルは終
  61.   了したと判断します。
  62.        /* DIVIDE_END */
  63.        # DIVIDE_END
  64.        ; DIVIDE_END
  65.  
  66.   (3) 更に、ファイルの途中に、次の文字列があると、挿入複写の操作を行い
  67.   ます。
  68.          /* INCLUDE=
  69.  
  70.   (4) これらの文字列は、普通、分割するファイルの中に複写されます。しか
  71.   し、(1)の(b)(d)(f) の場合のように「DIVIDE_START」の前にハイフン「-」
  72.   を入れることにより、これらの区切りの文字列を複写しないように指定する
  73.   ことができます。
  74.  
  75.  
  76. 3.DIVの起動の仕方
  77.   (1) 1つに纏めたファイルから分割する場合
  78.    これは、非常に簡単です。1つに纏めたファイルの名前を「all」とする
  79.   と、
  80.          div all
  81.    とするだけで、区切りの文字列を探索してファイルを分割します。
  82.    この場合、DIVは同じファイル名で拡張子が「.old」のファイル(
  83.   「all.old」)を探します。もしそのファイルがないと、DIVは、「all」
  84.   から、全てのファイルを切り出します。もしそのファイルがあると、その中
  85.   のファイルと一致・不一致をチェックして、一致しないファイルだけを書き
  86.   出します。
  87.    そして、最後に「all」を「all.old」に上書きします。これで、次回の
  88.   「div all」に備えることができます。
  89.  
  90.   (2) 分割したファイルを1つに纏める場合
  91.    これには、大きく2つの方法があります。いずれの場合も、纏めるファイ
  92.   ルを指定しなければなりません。纏め先のファイルも指定しなければなりま
  93.   せん。
  94.  
  95.    纏め方の第1は、纏め先に無条件に指定のファイルを追加する方法です。
  96.   次のように指定します。
  97.          div -a:*.c all
  98.    こうすると、カレント・ディレクトリの拡張子が「.c」のファイルが全て
  99.   「all」というファイルの後ろに追加されます。追加するファイルが「all」
  100.   に含まれているかどうかはチェックしていませんので、注意して使用して下
  101.   さい。
  102.  
  103.    第2の方法は、次のようにします。
  104.          div -u:*.c all
  105.    これも、上の方法と殆ど同じになりますが、唯一異なるのは「all」とい
  106.   うファイルがあった場合の処理が異なるということです。上の「-a」では単
  107.   純に「all」というファイルに追加するだけだったのですが、この場合は
  108.   「all」というファイルがあった場合は、それを削除して良いかどうかを尋
  109.   ねて来ます。そこで、「y」と入力すると「all」というファイルは削除され、
  110.   拡張子「.c」のファイルが「all」に追加されていきます。また、「n」と入
  111.   力すると、処理は中断され、戻り値が1で終了します。
  112.    この、戻り値が1で終了することを利用して、次のようなバッチファイル
  113.   を作って1つに纏めたファイルを作ると便利です。
  114.          rem update.bat
  115.              div -u:*.c all
  116.              if errorlevel 1 goto end
  117.              div -a:*.h all
  118.              div -a:*.doc all
  119.              div -a:makefile all
  120.          :end
  121.  
  122.   (3) 使用例
  123.    例として、このプログラムのソース等を一本化したファイルを添付してあ
  124.   るので、それを分割してみて下さい。
  125.    使い方
  126.      div  all
  127.  
  128.    また、「div」とだけ入力するとオプションの指定が表示されます。
  129.  
  130.  
  131.   ★★★★★★★
  132. 4.★★ 注意 ★★
  133.   ★★★★★★★
  134.  
  135.    分割するファイル名の指定を間違えると、元のファイルが削除されてしま
  136.   うので、注意して下さい。例えば、「all」という1つに纏めたファイルの
  137.   中に「all」という分割するファイルがあったりすると………
  138.  
  139. 5.著作権
  140.    本プログラムはNIFTY-ID:GHH01217 山先(やません)
  141.   に著作権があるものとします。しかし、その使用、配付は自由に行っていた
  142.   だいてかまいません。
  143.  
  144.  
  145. 6.何かありましたら。
  146.  私あてメールを下さい。
  147.                        GHH01217 山先
  148. /* DIVIDE_END */
  149.